@echo off
chcp 65001 >nul

echo ======================================
echo 开始构建前后端整合jar包
echo ======================================

REM 设置错误时退出
setlocal enableextensions enabledelayedexpansion

REM 获取脚本所在目录
cd /d "%~dp0"

REM 查找Maven命令
echo 步骤0: 查找Maven环境...
set "MAVEN_CMD="

REM 尝试查找系统中的Maven
where mvn >nul 2>&1
if !errorlevel! == 0 (
    set "MAVEN_CMD=mvn"
    echo - 找到系统 Maven
) else (
    REM 尝试查找IDEA内置的Maven
    set "IDEA_MAVEN_PATHS[0]=C:\Program Files\JetBrains\IntelliJ IDEA*\plugins\maven\lib\maven3\bin\mvn.cmd"
    set "IDEA_MAVEN_PATHS[1]=%USERPROFILE%\AppData\Local\JetBrains\Toolbox\apps\IDEA-U\ch-0\*\plugins\maven\lib\maven3\bin\mvn.cmd"
    
    for /L %%i in (0,1,1) do (
        if defined IDEA_MAVEN_PATHS[%%i] (
            for %%f in ("!IDEA_MAVEN_PATHS[%%i]!") do (
                if exist "%%~f" (
                    set "MAVEN_CMD=%%~f"
                    echo - 找到IDE内置 Maven: %%~f
                    goto :maven_found
                )
            )
        )
    )
)

:maven_found
if "%MAVEN_CMD%"=="" (
    echo ❌ 未找到Maven，请安装Maven或者手动指定路径
    echo.
    echo 解决方案：
    echo 1. 下载Maven: https://maven.apache.org/download.cgi
    echo 2. 或者使用IDE构建功能直接在IntelliJ IDEA中构建
    echo 3. 或者设置环境变量: set MAVEN_HOME=C:\path\to\maven
    pause
    exit /b 1
)

echo 步骤1: 清理之前的构建文件...
REM 清理前端构建文件
if exist "ruoyi-ui\dist" (
    rmdir /s /q "ruoyi-ui\dist"
    echo - 清理前端dist目录
)

REM 清理后端静态资源目录
if exist "ruoyi-admin\src\main\resources\static" (
    rmdir /s /q "ruoyi-admin\src\main\resources\static"
    echo - 清理后端static目录
)

REM 清理Maven构建文件
if exist "target" (
    rmdir /s /q "target"
    echo - 清理根目录target
)

if exist "ruoyi-admin\target" (
    rmdir /s /q "ruoyi-admin\target"
    echo - 清理ruoyi-admin\target
)

echo 步骤2: 构建前端项目...
cd ruoyi-ui

REM 检查node_modules是否存在，不存在则安装依赖
if not exist "node_modules" (
    echo - 安装前端依赖...
    call npm install
    if errorlevel 1 (
        echo 错误：前端依赖安装失败！
        pause
        exit /b 1
    )
)

echo - 构建前端生产版本...
call npm run build:prod
if errorlevel 1 (
    echo 错误：前端构建失败！
    pause
    exit /b 1
)

cd ..

echo 步骤3: 构建后端项目...
call "%MAVEN_CMD%" clean package -DskipTests
if errorlevel 1 (
    echo 错误：后端构建失败！
    pause
    exit /b 1
)

echo ======================================
echo 构建完成！
echo ======================================

REM 查找生成的jar文件
set "JAR_FILE="
for /r "ruoyi-admin\target" %%f in (ruoyi-admin.jar) do (
    set "JAR_FILE=%%f"
)

if defined JAR_FILE (
    echo 生成的jar文件位置: !JAR_FILE!
    echo.
    echo 运行方式：
    echo java -jar "!JAR_FILE!"
    echo.
    echo 访问地址：
    echo http://localhost:8085
    echo.
    echo 默认账号：
    echo 用户名: admin
    echo 密码: admin123
) else (
    echo 错误：未找到生成的jar文件！
    pause
    exit /b 1
)

echo ======================================
pause